$(document).ready(function(){
	
	//Esconde o painel de erros ao carregar a página.
	$("#painelErro").hide();
	
	//Submete o formul�rio para salvar uma entidade, tamb�m realiza a validação dos campos na tela.
	$("#btnSalvarEntidade").click(function(){
		 var submit = validarCampos();
		 if(submit){
			 $("#painelErro").hide();
			 $("#formularioIncluirEntidade").submit();
		 }else{
			
			 $("#painelErro").show();
		 }
	});
	
	
	//Procura os estados por pa�s.
	$('#inputPais').change(function() {
		$("#inputEstado").text('Selecione');
		 if($('#inputPais option:selected').text().trim() == 'Brasil'){  	
			 $('#inputEstado option:selected').html('Selecione');
	            $.ajax({  
	                type: "GET",   
	                url: "../pessoa/listar-estados/Brasil",  
	                success:   function(response){
	                	 $('#inputEstado').children().remove();
	                	 $('#inputEstado').append($('<option></option>').val(null).html("Selecione"));  
	                	 $.each(response, function(val, text){  
	                		 $('#inputEstado').append($('<option></option>').val(text.siglaEstado).html(text.siglaEstado));  
	                     });  
	   		         },
	   		         error: function(e){
	   		    	  alert('Error: ' + e);
	   		         }
	            });  
	        }else{
	        	 $('#inputEstado').children().remove();
	        	 $('#inputCidade').children().remove();
            	 $('#inputEstado').append($('<option></option>').val(null).html("Selecione")); 
            	 $('#inputCidade').append($('<option></option>').val(null).html("Selecione")); 
	        }
	});
	
	//Procura as cidades por estado.
	$('#inputEstado').change(function() {
		$("#inputCidade").text('Selecione');
		 if($('#inputEstado option:selected').index() > 0){  
			 $('#inputCidade option:selected').html('Selecione');
	            $.ajax({  
	                type: "GET",   
	                url: "../pessoa/listar-cidades/"+$('#inputEstado option:selected').text(),  
	                success:   function(response){
		                $('#inputCidade').children().remove();
		                $('#inputCidade').append($('<option></option>').val(null).html("Selecione"));  
	                	 $.each(response, function(val, text){  
	                         $('#inputCidade').append($('<option></option>').val(text.nomeCidade).html(text.nomeCidade));  
	                     });  
	   		         },
	   		         error: function(e){
	   		    	  alert('Error: ' + e);
	   		         }
	            });  
	        }
	});
	
	
	//Fun��o que valida os campos obrigat�rios.
	validarCampos = (function() {
		var mensagemErro = " Os seguintes campos s�o obrigat�rios: ";
		var retorno = true;
		
		if($("#inputCoigoEntidade").val() == ""){
			mensagemErro = mensagemErro + " #C�digo Entidade";
			retorno = false;
		}
		
		if($("#inputNomeEntidade").val() == ""){
			mensagemErro = mensagemErro + " #Nome Entidade";
			retorno = false;
		}
		if($("#inputCnpjEntidade").val() == ""){
			mensagemErro = mensagemErro + " #CNPJ da Entidade";
			retorno = false;
		}
		if($("#inputEnderecoEntidade").val() == ""){
			mensagemErro = mensagemErro + " #Endereço da Entidade ";
			retorno = false;
		}
		if($("#inputCepEntidade").val() == ""){
			mensagemErro = mensagemErro + " #CEP da Entidade ";
			retorno = false;
		}
		
		if($("#inputTipoPrevidencia").val() == "Selecione"){
			mensagemErro = mensagemErro + " #Tipo previd�ncia ";
			retorno = false;
		}
		if($("#inputPais").val() == "Selecione"){
			mensagemErro = mensagemErro + " #Pa�s ";
			retorno = false;
		}
		
		if($("#inputTipoPrevidenciaEntidade").val() == "Selecione"){
			mensagemErro = mensagemErro + " #Tipo Previd�ncia ";
			retorno = false;
		}
		
		if($('#inputPais option:selected').text().trim() == 'Brasil'){
			if($("#inputEstado").val() == "Selecione"){
				mensagemErro = mensagemErro + " #Estado ";
				retorno = false;
			}
			if($("#inputCidade").val() == "Selecione"){
				mensagemErro = mensagemErro + " #Cidade ";
				retorno = false;
			}
		}
		
		 $("#camposObrigatorios").text(mensagemErro);		
		return retorno;
	});
	
	
	$('#selectEstados').change(function() {
		
		estado = $('#selectEstados').attr("value");
		
		if (estado == "Selecione") { //ou Selecione
			//Limpar outros drops.				
		} else {				
			$("body").css("cursor", "progress");
			
			$('#selectCidades').load("/pessoa/selectCidades #selectCidades option", 
					{id_estado: $('#selectEstados').attr('value')},
					function(response){
						$("body").css("cursor", "auto");
						$("#selectCidades").attr("disabled", false);
						$('#selectCidades').attr("value","");
					}
			);
		}
		
     });
	
     $('#selectPaises').change(function() {
		
		pais = $('#selectPaises').attr("value");
		
		if (pais == "Selecione") { //ou Selecione
			//Limpar outros drops.				
		} else {				
			$("body").css("cursor", "progress");
			
			$('#selectEstados').load("/pessoa/selectEstados #selectEstados option", 
					{id_pais: $('#selectPaises').attr('value')},
					function(response){
						$("body").css("cursor", "auto");
						$("#selectEstados").attr("disabled", false);
						$('#selectEstados').attr("value","");
					}
			);
		}
		
     });
	

	//Inicialização das mêscaras dos campos.
	$("#inputCepEntidade").mask("99.999-999");	
	$("#inputTelefoneEntidade").mask("(99)-9999-9999");
	$("#inputCnpjEntidade").mask("99.999.999/999-99");
	
});